package yyy.ab.modules.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.cache.annotation.CacheConfig;
import yyy.ab.common.constant.AdminConstant;
import yyy.ab.common.core.BaseService;
import yyy.ab.common.core.ResultBean;
import yyy.ab.modules.system.entity.SysRole;
import yyy.ab.modules.system.entity.dto.SysRoleMenuAllocationDto;
import yyy.ab.modules.system.entity.dto.SysRoleMenuDto;
import yyy.ab.modules.system.entity.dto.SysRoleSmallDto;

import java.util.List;
import java.util.Map;

/**
 * 系统角色服务接口
 */
//@CacheConfig(cacheNames = AdminConstant.CACHE_PREFIX + "role")
public interface SysRoleService extends BaseService<SysRole> {

    /**
     * 分页查询
     *
     * @return
     */
    IPage<SysRole> findPage(Map<String, Object> params);

    /**
     * 获取角色菜单分配列表
     *
     * @param roleId 角色id
     * @return
     */
    List<SysRoleMenuDto> getRoleMenuList(Long roleId);

    /**
     * 分配角色菜单
     *
     * @param roleMenuAllocationDto
     * @return
     */
    ResultBean allocation(SysRoleMenuAllocationDto roleMenuAllocationDto);

    /**
     * 获取Small Role集合
     *
     * @return
     */
    List<SysRoleSmallDto> findSmallList();
}
